package wodegua.d31_java高级.d2_reflect;

/**
 * 反射(Reflection)
 * 反射就是:加载类，并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)。
 *
 * 反射学什么?
 * 学习获取类的信息、操作它们
 * 1、反射第一步:加载类，获取类的字节码:Class对象
 * 2、获取类的构造器:Constructor对象
 * 3、获取类的成员变量:Field对象
 * 4、获取类的成员方法:Method对象
 *
 * 反射的作用?
 * 1.基本作用:可以得到一个类的全部成分然后操作。
 * 2.可以破坏封装性。
 * 3.最重要的用途是:适合做java的框架，基本上，主流的框架都会基于反射设计出一些通用的功能。
 *
 * 案例
 * 使用反射做一个简易版的框架
 * 需求:
 * 1、对于任意一个对象，该框架都可以把对象的字段名和对应的值，保存到文件中去。
 * 实现步骤
 * 1、定义一个方法，可以接收任意对象。
 * 2、每收到一个对象后，使用反射获取该对象的Class对象，然后获取全部的成员变量
 * 3、遍历成员变量，然后提取成员变量在该对象中的具体值，
 * 4、把成员变量名、和其值，写出到文件中去即可。
 */
public class Test {
}
